def prime(a):
    if a<2:
        return f'{a}是一个素数'
    else:
        for i in range(2,int(a**0.5+1)):
            if a%i==0:
                return f'{a}不是一个素数'

        return f'{a}是一个素数'

a=int(input('请输入一个数字：'))
if a<0:
    a1=int(input('输入有误，请重新输入一个数：'))
    a = a1
    print(prime(a))
else:
    print(prime(a))



#编写函数，求出一个数除了1和自身以外的因子。从键盘输入一个数，调用该函数输出除了1和它本身以外的所有因子。

def find_numbers(a):
    numbers=[]
    for i in range(2,int(a**0.5+1)):
        if a%i ==0:
            numbers.append(i)
    return numbers

a=int(input('请输入一个数：'))
b=find_numbers(a)
if b:
    print(f'{a}的因子为：',b)
else:
    print(f'{a} 是一个质数')


#编写函数，判断一个数是否为水仙花数。调用该函数打印出1000以内的所有水仙花数。

def find_numbers(num):

    ge = num % 10
    shi = num // 10 % 10
    bai = num // 100
    if ge**3+shi**3+bai**3==num:
        return  num
    else:
        return 0
num=int(input('请输入一个三位数:'))
if find_numbers(num):
    print(f'{num}是水仙花数')
else:
    print(f'{num}不是水仙花数')
numbers=[]
for i in range(100,1000):
    a=find_numbers(i)
    if a!=0:
        numbers.append(a)
print(numbers)


def fibonacci(n):
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)

a = fibonacci(20)
print(f"斐波那契数列的第20项是：{a}")
















